package models

/*
	定义请求的参数结构体
*/

const (
	OrderTime  = "time"
	OrderScore = "score"
)

// ParamSignUp 注册请求参数
type ParamSignUp struct {
	Username   string `json:"username,omitempty" binding:"required"` //required 要求该字段必须有值
	Password   string `json:"password,omitempty" binding:"required"`
	RePassword string `json:"re_password,omitempty" binding:"required,eqfield=Password"` //eqfield 要求该字段必须和指定字段相等
}

// ParamLogin 登录请求参数
type ParamLogin struct {
	Username string `json:"username,omitempty" binding:"required"`
	Password string `json:"password,omitempty" binding:"required"`
}

// ParamVoteData 投票数据
type ParamVoteData struct {
	//UserID 从请求中获取当前的用户
	PostID    string `json:"post_id,omitempty" binding:"required"`              //贴子id
	Direction int8   `json:"direction,omitempty,string" binding:"oneof=1 0 -1"` //赞成票（1）还是反对票（-1）取消投票（0）
}

// ParamPostList 获取帖子列表 query string 参数
type ParamPostList struct {
	CommunityID int64  `json:"community_id" form:"community_id"`             //可以为空
	Page        int64  `json:"page,omitempty" form:"page"`                   //页码
	Size        int64  `json:"size,omitempty" form:"size"`                   //每页数据量
	Order       string `json:"order,omitempty" form:"order" example:"score"` //排序依据
}
